30 research outputs found

    Generación de una librería RVC – CAL para la etapa de determinación de endmembers en el proceso de análisis de imágenes hiperespectrales

    Get PDF
    El análisis de imágenes hiperespectrales permite obtener información con una gran resolución espectral: cientos de bandas repartidas desde el espectro infrarrojo hasta el ultravioleta. El uso de dichas imágenes está teniendo un gran impacto en el campo de la medicina y, en concreto, destaca su utilización en la detección de distintos tipos de cáncer. Dentro de este campo, uno de los principales problemas que existen actualmente es el análisis de dichas imágenes en tiempo real ya que, debido al gran volumen de datos que componen estas imágenes, la capacidad de cómputo requerida es muy elevada. Una de las principales líneas de investigación acerca de la reducción de dicho tiempo de procesado se basa en la idea de repartir su análisis en diversos núcleos trabajando en paralelo. En relación a esta línea de investigación, en el presente trabajo se desarrolla una librería para el lenguaje RVC – CAL – lenguaje que está especialmente pensado para aplicaciones multimedia y que permite realizar la paralelización de una manera intuitiva – donde se recogen las funciones necesarias para implementar dos de las cuatro fases propias del procesado espectral: reducción dimensional y extracción de endmembers. Cabe mencionar que este trabajo se complementa con el realizado por Raquel Lazcano en su Proyecto Fin de Grado, donde se desarrollan las funciones necesarias para completar las otras dos fases necesarias en la cadena de desmezclado. En concreto, este trabajo se encuentra dividido en varias partes. La primera de ellas expone razonadamente los motivos que han llevado a comenzar este Proyecto Fin de Grado y los objetivos que se pretenden conseguir con él. Tras esto, se hace un amplio estudio del estado del arte actual y, en él, se explican tanto las imágenes hiperespectrales como los medios y las plataformas que servirán para realizar la división en núcleos y detectar las distintas problemáticas con las que nos podamos encontrar al realizar dicha división. Una vez expuesta la base teórica, nos centraremos en la explicación del método seguido para componer la cadena de desmezclado y generar la librería; un punto importante en este apartado es la utilización de librerías especializadas en operaciones matriciales complejas, implementadas en C++. Tras explicar el método utilizado, se exponen los resultados obtenidos primero por etapas y, posteriormente, con la cadena de procesado completa, implementada en uno o varios núcleos. Por último, se aportan una serie de conclusiones obtenidas tras analizar los distintos algoritmos en cuanto a bondad de resultados, tiempos de procesado y consumo de recursos y se proponen una serie de posibles líneas de actuación futuras relacionadas con dichos resultados. ABSTRACT. Hyperspectral imaging allows us to collect high resolution spectral information: hundred of bands covering from infrared to ultraviolet spectrum. These images have had strong repercussions in the medical field; in particular, we must highlight its use in cancer detection. In this field, the main problem we have to deal with is the real time analysis, because these images have a great data volume and they require a high computational power. One of the main research lines that deals with this problem is related with the analysis of these images using several cores working at the same time. According to this investigation line, this document describes the development of a RVC – CAL library – this language has been widely used for working with multimedia applications and allows an optimized system parallelization –, which joins all the functions needed to implement two of the four stages of the hyperspectral imaging processing chain: dimensionality reduction and endmember extraction. This research is complemented with the research conducted by Raquel Lazcano in her Diploma Project, where she studies the other two stages of the processing chain. The document is divided in several chapters. The first of them introduces the motivation of the Diploma Project and the main objectives to achieve. After that, we study the state of the art of some technologies related with this work, like hyperspectral images and the software and hardware that we will use to parallelize the system and to analyze its performance. Once we have exposed the theoretical bases, we will explain the followed methodology to compose the processing chain and to generate the library; one of the most important issues in this chapter is the use of some C++ libraries specialized in complex matrix operations. At this point, we will expose the results obtained in the individual stage analysis and then, the results of the full processing chain implemented in one or several cores. Finally, we will extract some conclusions related with algorithm behavior, time processing and system performance. In the same way, we propose some future research lines according to the results obtained in this documen

    Implementación de una Support Vector Machine en RVC – CAL para imágenes hiperespectrales

    Get PDF
    El análisis de imágenes hiperespectrales permite obtener información con una gran resolución espectral: cientos de bandas repartidas desde el espectro infrarrojo hasta el ultravioleta. El uso de dichas imágenes está teniendo un gran impacto en el campo de la medicina y, en concreto, destaca su utilización en la detección de distintos tipos de cáncer. Dentro de este campo, uno de los principales problemas que existen actualmente es el análisis de dichas imágenes en tiempo real ya que, debido al gran volumen de datos que componen estas imágenes, la capacidad de cómputo requerida es muy elevada. Una de las principales líneas de investigación acerca de la reducción de dicho tiempo de procesado se basa en la idea de repartir su análisis en diversos núcleos trabajando en paralelo. En relación a esta línea de investigación, en el presente trabajo se desarrolla una librería para el lenguaje RVC – CAL – lenguaje que está especialmente pensado para aplicaciones multimedia y que permite realizar la paralelización de una manera intuitiva – donde se recogen las funciones necesarias para implementar el clasificador conocido como Support Vector Machine – SVM. Cabe mencionar que este trabajo complementa el realizado en [1] y [2] donde se desarrollaron las funciones necesarias para implementar una cadena de procesado que utiliza el método unmixing para procesar la imagen hiperespectral. En concreto, este trabajo se encuentra dividido en varias partes. La primera de ellas expone razonadamente los motivos que han llevado a comenzar este Trabajo de Investigación y los objetivos que se pretenden conseguir con él. Tras esto, se hace un amplio estudio del estado del arte actual y, en él, se explican tanto las imágenes hiperespectrales como sus métodos de procesado y, en concreto, se detallará el método que utiliza el clasificador SVM. Una vez expuesta la base teórica, nos centraremos en la explicación del método seguido para convertir una versión en Matlab del clasificador SVM optimizado para analizar imágenes hiperespectrales; un punto importante en este apartado es que se desarrolla la versión secuencial del algoritmo y se asientan las bases para una futura paralelización del clasificador. Tras explicar el método utilizado, se exponen los resultados obtenidos primero comparando ambas versiones y, posteriormente, analizando por etapas la versión adaptada al lenguaje RVC – CAL. Por último, se aportan una serie de conclusiones obtenidas tras analizar las dos versiones del clasificador SVM en cuanto a bondad de resultados y tiempos de procesado y se proponen una serie de posibles líneas de actuación futuras relacionadas con dichos resultados. ABSTRACT. Hyperspectral imaging allows us to collect high resolution spectral information: hundred of bands covering from infrared to ultraviolet spectrum. These images have had strong repercussions in the medical field; in particular, we must highlight its use in cancer detection. In this field, the main problem we have to deal with is the real time analysis, because these images have a great data volume and they require a high computational power. One of the main research lines that deals with this problem is related with the analysis of these images using several cores working at the same time. According to this investigation line, this document describes the development of a RVC – CAL library – this language has been widely used for working with multimedia applications and allows an optimized system parallelization –, which joins all the functions needed to implement the Support Vector Machine – SVM - classifier. This research complements the research conducted in [1] and [2] where the necessary functions to implement the unmixing method to analyze hyperspectral images were developed. The document is divided in several chapters. The first of them introduces the motivation of the Master Thesis and the main objectives to achieve. After that, we study the state of the art of some technologies related with this work, like hyperspectral images, their processing methods and, concretely, the SVM classifier. Once we have exposed the theoretical bases, we will explain the followed methodology to translate a Matlab version of the SVM classifier optimized to process an hyperspectral image to RVC – CAL language; one of the most important issues in this chapter is that a sequential implementation is developed and the bases of a future parallelization of the SVM classifier are set. At this point, we will expose the results obtained in the comparative between versions and then, the results of the different steps that compose the SVM in its RVC – CAL version. Finally, we will extract some conclusions related with algorithm behavior and time processing. In the same way, we propose some future research lines according to the results obtained in this document

    Spatio-spectral classification of hyperspectral images for brain cancer detection during surgical operations.

    Get PDF
    Surgery for brain cancer is a major problem in neurosurgery. The diffuse infiltration into the surrounding normal brain by these tumors makes their accurate identification by the naked eye difficult. Since surgery is the common treatment for brain cancer, an accurate radical resection of the tumor leads to improved survival rates for patients. However, the identification of the tumor boundaries during surgery is challenging. Hyperspectral imaging is a non-contact, non-ionizing and non-invasive technique suitable for medical diagnosis. This study presents the development of a novel classification method taking into account the spatial and spectral characteristics of the hyperspectral images to help neurosurgeons to accurately determine the tumor boundaries in surgical-time during the resection, avoiding excessive excision of normal tissue or unintentionally leaving residual tumor. The algorithm proposed in this study to approach an efficient solution consists of a hybrid framework that combines both supervised and unsupervised machine learning methods. Firstly, a supervised pixel-wise classification using a Support Vector Machine classifier is performed. The generated classification map is spatially homogenized using a one-band representation of the HS cube, employing the Fixed Reference t-Stochastic Neighbors Embedding dimensional reduction algorithm, and performing a K-Nearest Neighbors filtering. The information generated by the supervised stage is combined with a segmentation map obtained via unsupervised clustering employing a Hierarchical K-Means algorithm. The fusion is performed using a majority voting approach that associates each cluster with a certain class. To evaluate the proposed approach, five hyperspectral images of surface of the brain affected by glioblastoma tumor in vivo from five different patients have been used. The final classification maps obtained have been analyzed and validated by specialists. These preliminary results are promising, obtaining an accurate delineation of the tumor area

    Energy Consumption Reduction on High Performance Embedded Systems for Hyperspectral Imaging Cancer Detection

    Full text link
    Con el paso del tiempo, la complejidad de las aplicaciones está viéndose incrementada constantemente y, en paralelo, existe un continuo desarrollo de las plataformas de computación sobre las que dichas aplicaciones se ejecutan. Además, los requisitos de los sistemas, tanto funcionales como no funcionales –tiempo de ejecución o consumo de energía–, son cada vez más exigentes, lo que está empezando a convertir el desarrollo de aplicaciones en una tarea inabarcable. Este es el caso del uso de imágenes hiperespectrales –del inglés Hyperspectral Imaging (HSI)– para distinguir el tejido sano del tejido tumoroso en humanos. La investigación en este ámbito ha cobrado importancia en los últimos años debido a que es una tecnología no invasiva y no ionizante capaz de distinguir los márgenes del tumor de manera precisa. Esta aplicación presenta distintos requisitos dependiendo del campo en el que se quiera aplicar: en neurocirugía, es necesario dar una respuesta en tiempo real para ayudar al cirujano durante la operación; en dermatología, sin embargo, el consumo de energía cobra una mayor importancia, ya que, en este caso, sería posible que el sistema estuviera alimentado a través de una batería. Para facilitar el desarrollo de sistemas en los que existen requisitos tanto funcionales como no funcionales, en la actualidad se utilizan estrategias de diseño que automatizan ciertas tareas, como por ejemplo la paralelización del código, la generación automática del código final, la planificación de tareas, etc. A este respecto, existen unas metodologías de diseño que se basan en el paradigma llamado Ychart, donde se propone una separación entre el desarrollo de la aplicación y la especificación de la plataforma sobre la que se va a ejecutar, para después combinarlos teniendo en cuenta una serie de directrices definidas por los desarrolladores. Además, para llevar a cabo dicha combinación, se pueden utilizar optimizaciones multiobjetivo, donde todos los requisitos del sistema, que pueden incluso ser opuestos entre sí, se intentan cumplir. Teniendo en cuenta esta tendencia, en este documento se propone una metodología de diseño basada en Y-chart y flujo de datos, del inglés dataflow, donde se busca incluir el consumo de energía entre los requisitos no funcionales a optimizar. Esta nueva metodología consiste en un bucle de optimización del consumo de energía construido con el fin de poderse aplicar independientemente de la aplicación y de la plataforma de computación utilizadas. En concreto, el bucle se ha construido combinando 3 módulos: monitorización del sistema, estimación del consumo de energía y toma de decisiones. En primer lugar, se ha desarrollado PAPIFY, una infraestructura de monitorización basada en dataflow. Esta herramienta es capaz de obtener información tanto del tiempo de ejecución como de una serie de monitores de rendimiento –del inglés Performance Monitoring Counter (PMC)– durante la ejecución de la aplicación. Además, debido a la aproximación dataflow, la información que se quiere monitorizar en cada parte de la aplicación se define de manera individual; asimismo, es posible asociar cada recurso de la plataforma a un conjunto de PMCs específico. Como resultado, con esta herramienta, es posible 1) caracterizar aplicaciones que se ejecuten en plataformas heterogéneas, es decir, que engloben recursos de computación de distinta naturaleza y 2) adaptar la monitorización del sistema automáticamente y de manera transparente al usuario para que, en cada momento, se ajuste a la configuración específica de cada parte de la aplicación, siempre y cuando dicha configuración se soporte en el recurso de computación en el que se esté ejecutando. Por otro lado, en este documento también se propone una nueva metodología para modelar el consumo de energía de una plataforma de computación. En el desarrollo de esta metodología se ha buscado poder modelar distintos tipos de plataforma, por ejemplo, las denominadas plataformas multi-/many-core, donde un conjunto de procesadores trabajan en paralelo. Para ello, se ha separado el consumo de energía en 3 partes: 1) consumo asociado a la activación de los distintos recursos de la plataforma, 2) consumo debido a las comunicaciones entre recursos de computación y 3) consumo debido al procesamiento dentro de la aplicación. Otra característica importante de la metodología de modelado propuesta es que se desarrollan modelos lineales que utilizan información disponible durante la ejecución, con el objetivo de utilizar los modelos generados para realizar estimaciones del consumo de energía durante la ejecución del sistema. En el caso de la toma de decisiones para optimizar el consumo de energía del sistema, se propone un mecanismo que construye un bucle de optimización de dicho consumo alrededor de un bloque de mapeado/planificación de tareas que busca optimizar la latencia del sistema. Este bucle consiste en, manteniendo el bloque de mapeado/planificación como una caja negra, caracterizar el rendimiento y el consumo de energía de los sistemas generados y modificar las entradas de dicho bloque en consecuencia. Con estas modificaciones, se prueban distintas configuraciones del sistema con el objetivo de escoger la más eficiente en términos de consumo de energía de entre las que cumplen el requisito de rendimiento del sistema. Esta aproximación se puede utilizar en dos contextos: 1) durante el diseño de la aplicación para explorar el espacio de diseño –del inglés Design Space Exploration (DSE)–, y 2) durante la propia ejecución del sistema. Para validar la metodología propuesta para optimizar el consumo de energía, durante el desarrollo de esta tesis se han llevado a cabo dos implementaciones: la primera busca mejorar el proceso de DSE en tiempo de diseño, mientras que la segunda, en cambio, está enfocada a la optimización en tiempo de ejecución. En ambos casos, los 3 bloques que se han explicado con anterioridad se combinan para incorporar la optimización del consumo de energía entre las capacidades de las herramientas de diseño basadas en dataflow que se han escogido para implementar el bucle de optimización. En el caso de la implementación para el tiempo de diseño, se ha escogido un entorno de desarrollo denominado Parallel Real-time Embedded Executives SchedulingMethod (PREESM). Los sistemas generados usando PREESM se monitorizan automáticamente usando la herramienta PAPIFY para obtener la información asociada al tiempo de ejecución y al consumo de energía de dichos sistemas. Tras esto, los datos recogidos se incluyen en el entorno de desarrollo para optimizar los resultados obtenidos con el proceso de DSE, considerando (o no) el consumo de energía. De igual modo, el bucle de optimización en tiempo de ejecución se ha embebido en Synchronous Parameterized and Interfaced Dataflow Embedded Runtime (SPiDER), que es el homólogo de PREESM utilizado cuando la aplicación requiere una gestión de recursos dinámica. En este caso, la información se recoge directamente mediante PAPIFY y se incluye dentro de la caracterización interna de la aplicación que tiene SPiDER. Como resultado, SPiDER es consciente en todo momento del estado y el rendimiento de la aplicación que está ejecutando. Con esta extensión se mejora la capacidad de toma de decisiones de SPiDER durante el proceso de mapeado/planificación de tareas, permitiendo así la búsqueda de la configuración de sistema que sea más eficiente en términos de consumo de energía, basándose en información real de la ejecución en curso. Con el fin de caracterizar los posibles beneficios que se puedan conseguir al aplicar la metodología propuesta, la aplicación que utiliza HSI para detectar tumores se ha implementado a mano en una plataforma many-core llamada Multi-Purpose Processor Array (MPPA). Esta implementación, que se utilizará como base para hacer comparativas, se ha llevado a cabo teniendo como principal objetivo minimizar la latencia de procesamiento, lo que ha llevado a explotar manualmente el paralelismo intrínseco de la aplicación. Al distribuir la carga de trabajo entre los 256 núcleos de procesamiento que tiene la MPPA, se han obtenido aceleraciones de 50£ y 112£ para imágenes de neurocirugía y de dermatología, respectivamente. Una vez implementada la aplicación a mano, se ha llevado a cabo otra implementación de la aplicación, pero esta vez siguiendo la metodología de diseño Y-chart y el modelado dataflow. En este caso, debido a las limitaciones que conlleva utilizar dicho modelado, los tiempos de procesamiento se han multiplicado por 6. Sin embargo, una de las ventajas de esta implementación es que se puede utilizar para optimizar automáticamente la latencia y/o el consumo de energía. En el contexto de este documento se han considerado dos escenarios diferentes con los que se pretende caracterizar completamente la metodología de diseño propuesta: 1) optimización de la latencia del sistema y 2) optimización del consumo de energía del sistema fijando un objetivo de rendimiento. En el segundo escenario, además, se han definido una serie de modos de trabajo en los que se ha incrementado/reducido la importancia que tienen tanto el rendimiento de la aplicación como el consumo de energía dentro de los requisitos del sistema. En el caso de la optimización de latencia, se ha caracterizado la aplicación en términos de tiempos de ejecución utilizando la herramienta PAPIFY, con el fin de proporcionar dicha información tanto a PREESM como a SPiDER. Gracias a esta caracterización, se han conseguido aceleraciones de 1.4£ y 1.3£ al realizar optimizaciones en tiempo de diseño y tiempo de ejecución, respectivamente. Por último, queda demostrada la capacidad de reducir el consumo de energía por parte de las dos implementaciones del bucle de optimización propuesto en este documento, ya que, al incluir el consumo de energía como uno de los parámetros no funcionales a optimizar, dicho consumo se ha reducido en hasta un 30.21% en ambos casos. En este estudio, PAPIFY se ha utilizado para obtener información tanto de los tiempos de ejecución como de los PMCs con el fin de hacer estimaciones del consumo de energía utilizando el modelo desarrollado para la MPPA, el cual ha demostrado tener una precisión por encima del 95% para una aplicación que no se ha utilizado durante el desarrollo del mismo. Como conclusión, se ha demostrado que la metodología propuesta en este documento ha sido capaz de optimizar automáticamente el consumo de energía de un sistema compuesto por una aplicación con una alta demanda de cómputo ejecutada sobre una plataforma compleja. ----------ABSTRACT---------- The growing complexity of both applications and architectures, combined with the tightening of functional and non-functional system requirements, is reaching the frontiers of what can currently be obtained. This is the case of, for example, the application of Hyperspectral Imaging (HSI) to discern between healthy and tumor human tissues. This research line has gained importance in the past few years, as it is a non-invasive and non-ionizing technology capable of accurately delimiting tumor boundaries. Nevertheless, this kind of system requires processing a large amount of data and, depending on the field in which this application is used, the system requirements vary: in the neurosurgical case, detecting tumor boundaries in realtime is necessary to help the specialist during the surgery; in the dermatological domain, energy consumption becomes the most important requirement, since battery-supplied systems should be used. To ease the development of systems where functional and non-functional requirements need to be weighed, design strategies where different tasks are automated (parallelization, code generation, task scheduling, etc) are often used. In the literature, the most extended approaches are those based on Y-chart design. This methodology proposes a separation of concerns, where the application is deployed onto the target architecture considering a set of user-defined constraints; additionally, to deploy these systems, multi-objective optimizations can be considered to fulfill the often opposing system constraints. In this regard, this PhD proposes a Y-chart dataflow-based design methodology whose aim is to include energy consumption within the non-functional requirements to be optimized. This methodology has been built as an iterative optimization loop with the objective of being both application and architecture independent. Specifically, the proposed energy-aware adaptation loop is composed of 3 different modules: monitoring, energy consumption estimation and energy-aware decision making. First, concerning the application monitoring, a dataflow-based monitoring infrastructure called PAPIFY has been built. This new tool retrieves timing and Performance Monitoring Counter (PMC) information at runtime, where, due to the dataflow-oriented approach, the instrumentation of each part of the application is individually set up and each platform computational resource is linked to a specific PMC set. As a result, 1) monitoring of heterogeneous architectures is supported and 2) the application profiling is automatically adapted at runtime, considering the part of the application that each processing element is executing. Secondly, to address the energy consumption estimation, a new platformmodeling methodology is proposed focusing on building application-independent models. The approach has been built keeping in mind its potential applicability to model architectures of different nature, e.g., multi-/many-cores, which leads to models where the energy consumption is divided into 3 contributions: resource-active, communication and computation. Additionally, linear models based on runtime information are built to be able to estimate the energy consumption at runtime. Later, regarding the decision making module, an energy-aware mechanism that builds a loop around latency-based mapping/scheduling algorithms to optimize the system energy consumption has been proposed. This loop consists in using the mapping/scheduling block as a black-box, characterizing the performance and energy consumption of its system deployments and modifying its inputs so as to test different system configurations and keep the one with the lowest energy consumption that reaches the desired performance. This approach has been built so as to be applied in both design time, where Design Space Exploration (DSE) is enhanced, and by a runtime resource manager to performenergy-based optimizations. To validate the methodology, two real implementations of the energy-aware optimization loop have been carried out: one targeting design time DSE enhancement and the other focused on runtime energy consumption optimization. In both cases, the 3 aforementioned modules are combined so as to incorporate energy-awareness capabilities in different dataflow-based design frameworks. On the one hand, the design time implementation has been included within Parallel Real-time Embedded Executives Scheduling Method (PREESM) design framework, where the generated applications are automatically instrumented using PAPIFY to characterize them in terms of timing and energy consumption. These data is then included within PREESM information so as to enhance its latency-based DSE process considering (or not) energy-awareness. On the other hand, the runtime version of the energy-aware optimization loop has been embedded within Synchronous Parameterized and Interfaced Dataflow Embedded Runtime (SPiDER) runtime manager, which is the runtime counterpart of PREESM framework. In this case, the system is iteratively improved with on-thefly information retrieved thanks to PAPIFY and fed to the runtime manager itself. By including this self-awareness of the system execution, SPiDER is able to performbetter decisions during the mapping/scheduling process and, on top of that, to seek the most energy-efficient system configuration based on data of its current execution. To characterize the benefits of applying the proposed methodology, as a baseline to compare with, the HSI cancer detection processing chain has been manually deployed on a many-core architecture called Multi-Purpose Processor Array (MPPA). The main objective of this implementation has been to minimize the latency by exploiting the intrinsic parallelism of the application. As a result, speedups from 50£ to 112£ have been achieved when distributing the workload among the 256 Processing Elements (PEs) of theMPPA, using neurosurgical and dermatological images, respectively. After that, the Y-chart design methodology has been used to define a dataflow version of the application. In this case, in average, the maximum reachable performance has been reduced by 6 due to the limitations of this approach. Nevertheless, the systems generated with this implementation can be automatically optimized in terms of latency or energy consumption. Consequently, two scenarios have been considered to fully characterize the proposed methodology: 1) latencybased optimization and 2) energy-awareness considering a specific performance objective. In the latter, additionally, different working modes are used, weighing performance and energy consumption constraints. In the case of latency-based optimization, both PREESM and SPiDER frameworks have been enhanced with timing profiling information retrieved via PAPIFY. Thanks to this information, speedups up to 1.4£ and 1.3£ are achieved at design time and runtime, respectively. Finally, promising results have been obtained in both energy-aware optimization loop implementations, as they have been able to reduce the system energy consumption in up to a 30.21% in both design time and runtime. In this case, PAPIFY retrieves both timing and PMC information so as to estimate the energy consumption using the model developed for the MPPA, whose estimations –for a real application that has not been included during the architecture modeling– have an accuracy over 95%. Consequently, the design methodology proposed in this PhD has been proven to successfully deal with automatic multi-objective optimization of a highly demanding application when deployed on a complex architecture

    A Unified Hardware/Software Monitoring Method for Reconfigurable Computing Architectures using PAPI

    Full text link
    In this work, a standard and unified method for monitoring hardware accelerators in Reconfigurable Computing Architectures is proposed, based on a standard software monitoring interface. The open source Performance Application Programming Interface (PAPI) library is commonly used in the field of High Performance Computing and aims at providing event information directly extracted from a set of Performance Monitor Counters. Important events such as data and instruction cache misses, hardware interrupts, etc. are collected to analyze and profile applications to pinpoint the contingent bottlenecks. In other words, it serves as a ”Hardware Abstraction layer” for applications running in the user-space. In this paper, its use is extended by proposing a method to target custom Performance Hardware Registers on accelerators built upon an FPGA. Furthermore, portability and standardization are discussed and the overhead associated with PAPI use is evaluated. Two hardware examples are proposed to evaluate this approach: a simple counter and an infrastructure for hardware accelerators called ARTICo3

    A Unified Hardware/Software Monitoring Method for Reconfigurable Computing Architectures using PAPI

    No full text
    In this work, a standard and unified method for monitoring hardware accelerators in Reconfigurable Computing Architectures is proposed, based on a standard software monitoring interface. The open source Performance Application Programming Interface (PAPI) library is commonly used in the field of High Performance Computing and aims at providing event information directly extracted from a set of Performance Monitor Counters. Important events such as data and instruction cache misses, hardware interrupts, etc. are collected to analyze and profile applications to pinpoint the contingent bottlenecks. In other words, it serves as a ”Hardware Abstraction layer” for applications running in the user-space. In this paper, its use is extended by proposing a method to target custom Performance Hardware Registers on accelerators built upon an FPGA. Furthermore, portability and standardization are discussed and the overhead associated with PAPI use is evaluated. Two hardware examples are proposed to evaluate this approach: a simple counter and an infrastructure for hardware accelerators called ARTICo3

    Automatic Instrumentation of Dataflow Applications using PAPI

    Get PDF
    The widening of the complexity-productivity gap witnessed in the last years is becoming unaffordable from the application development point of view. New design methods try to automate most designers tasks in order to bridge this gap. In addition, new Models of Computation (MoC), as those dataflow-based, ease the expression of parallelism within applications and lead to higher productivity. Rapid prototyping design tools offer fast estimations of the soundness of design choices. A key step when prototyping an application is to have representative performance indicators to estimate the validity of the design choices. Such indicators can be obtained using hardware information through the Performance API (PAPI). In this work, PAPI and a dataflow MoC are integrated within a Y-chart design flow. The implementation takes the form of a dedicated automatic code generation scheme within the PREESM tool. Preliminary results show that depending on the complexity of the application, the computation time overhead due to monitoring varies from being almost negligible to more than 50%. Also, on top of offering accurate hardware performance indicators, the extracted values can be combined to estimate power or energy consumption

    Characterization Techniques for Emulsion-Based Antioxidant Carriers with Biomedical Applications

    No full text
    Emulsion-based antioxidant carriers are widely used in the food industry and pharmacology. After designing and synthesizing a determined emulsion-based antioxidant vehicle, it is essential to physicochemically characterize it in order to check if it meets the expected requirements for each application. In this sense, a good understanding of the basis of characterization techniques and methods to evaluate the design and performance of these encapsulation systems is crucial. In this chapter, the main characterization techniques of emulsion-based antioxidant carriers for biomedical applications are presented. A wide variety of techniques used in the evaluation of both continuous and dispersed phases of the emulsion system have been reviewed, from stability, rheology, cytotoxicity or sterilization of the whole emulsion; to the specific study of properties such as morphology, structure or size of the dispersed phase. Special emphasis has been placed on the antioxidant activity of the carriers being the key advantage of these emulsion-based systems

    Implementation of the Principal Component Analysis onto High-Performance Computer Facilities for Hyperspectral Dimensionality Reduction: Results and Comparisons

    No full text
    Dimensionality reduction represents a critical preprocessing step in order to increase the efficiency and the performance of many hyperspectral imaging algorithms. However, dimensionality reduction algorithms, such as the Principal Component Analysis (PCA), suffer from their computationally demanding nature, becoming advisable for their implementation onto high-performance computer architectures for applications under strict latency constraints. This work presents the implementation of the PCA algorithm onto two different high-performance devices, namely, an NVIDIA Graphics Processing Unit (GPU) and a Kalray manycore, uncovering a highly valuable set of tips and tricks in order to take full advantage of the inherent parallelism of these high-performance computing platforms, and hence, reducing the time that is required to process a given hyperspectral image. Moreover, the achieved results obtained with different hyperspectral images have been compared with the ones that were obtained with a field programmable gate array (FPGA)-based implementation of the PCA algorithm that has been recently published, providing, for the first time in the literature, a comprehensive analysis in order to highlight the pros and cons of each option
    corecore